package com.struts.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.struts.metier.Entreprise;

public class EntrepriseDaoImpl extends HibernateDaoSupport implements EntrepriseDao {
 
	@Override
	public void addOrUpd(Entreprise entreprise) { 
		this.getHibernateTemplate().saveOrUpdate(entreprise);  
	}
	
	@Override
	public void rmv(Long idEntreprise) {
		Entreprise entreprise = (Entreprise) getHibernateTemplate().get(Entreprise.class, idEntreprise);
		getHibernateTemplate().delete(entreprise);
	}
	
 
	@SuppressWarnings("unchecked")
	@Override
	public Entreprise getById(Long id) {
		try{
			DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Entreprise.class);
			detachedCriteria.add(Restrictions.idEq(id));  
			List<Entreprise> entreprises = getHibernateTemplate().findByCriteria(detachedCriteria);
			if(entreprises.size() == 0){
				return null;
			} 
			return entreprises.get(0); 
		}catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Entreprise> getAll() { 
		return (List<Entreprise>)this.getHibernateTemplate().loadAll(Entreprise.class);
	}
	
 
}
